/*
 * @Description: 系统管理 接口定义
 * @Version: 1.0
 * @Author: yxx
 * @Date: 2023-09-22 10:33:21
 * @LastEditors: yxx
 * @LastEditTime: 2025-05-28 09:10:58
 */
import { ReqPage } from "./index"

export namespace SystemSpace {
  // ------------------部门管理------------------ //
  // 部门管理 新增|修改
  export interface DeptAdd {
    id?: number
    pid: number
    name: string
    sort: number
    leader: string
    phone: string
    email: string
    status: number
  }
  // 部门管理 树状查询请求参数
  export interface DeptTreeQuery {
    name?: string
    status?: number
    leader?: string
    phone?: string
  }
  // 部门管理 树状查询
  export interface DeptTree {
    children: DeptTree[]
    createBy: string
    createTime: string
    email: string
    id: number
    leader: string
    name: string
    phone: string
    pid: number
    sort: number
    status: number
    updateBy: string
    updateTime: string
  }
  // 部门管理 分页列表请求参数
  export interface DeptPageListQuery extends ReqPage {
    name?: string
    status?: number
    leader?: string
    phone?: string
  }
  // 部门管理 分页列表
  export interface DeptPageList {
    id: number
    pid: number
    name: string
    sort: number
    leader: string
    phone: string
    email: string
    status: number
    children?: DeptPageList[]
  }
  // ------------------菜单管理------------------ //
  // 菜单管理 新增|修改
  export interface MenuAdd {
    id?: number
    name: string
    pid: number
    sort: number
    path: string
    component: string
    type: number
    perms: string
    icon: string
    isHide: boolean
    isFull: boolean
    isAffix: boolean
    isKeepAlive: boolean
    updateBy?: string
    updateTime?: string
    children?: MenuAdd[]
  }
  // 菜单管理 树状查询请求参数
  export interface MenuTreeQuery {
    name?: string
    type?: string
  }
  // 菜单管理 树状查询
  export interface MenuTree {
    id: number
    name: string
    pid: number
    sort: number
    path: string
    component: string
    type: number
    perms: string
    icon: string
    isHide: boolean
    isFull: boolean
    isAffix: boolean
    isKeepAlive: boolean
    updateBy: string
    updateTime: string
    children: MenuTree[]
  }
  // ------------------用户管理------------------ //
  // 用户管理 分页列表请求参数
  export interface UserPageQuery {
    account?: string
    name?: string
    phone?: string
    email?: string
    status?: string
  }
  export type UserPageListQuery = UserPageQuery & ReqPage
  // 用户管理 分页列表
  export interface UserPageList {
    account: string
    email: string
    id: number
    name: string
    phone: string
    sex: 0 | 1 | 2
    status: 0 | 1
    updateBy: string
    updateTime: string
  }
  // 用户管理 集合
  export interface UserCate {
    id: number
    name: string
    phone: string
    age: number
    workAge: number
  }
  // 用户管理 新增|修改
  export interface UserAdd {
    id?: number
    account: string
    name: string
    phone: string
    email: string
    sex: 0 | 1 | 2
    status: 0 | 1
    deptIds: number[]
    roleIds: number[]
  }
  // 用户管理 详情
  export interface UserDetail {
    account: string
    createBy: string
    createTime: string
    deptList: { id: number; name: string }[]
    email: string
    id: number
    imgPath?: string
    loginDate?: string
    name: string
    phone: string
    pwdModifyTime?: string
    roleList: { id: number; name: string }[]
    sex: 0 | 1 | 2
    status: 0 | 1
    updateBy: string
    updateTime: string
  }
  // 用户管理 修改个人信息
  export interface UserPersonal {
    id?: number
    name?: string
    phone?: string
    email?: string
  }
  // ------------------角色管理------------------ //
  // 角色管理 分页列表请求参数
  export interface RolePageQuery {
    name?: string
    status?: string
    startTime?: string
    endTime?: string
  }
  export type RolePageListQuery = RolePageQuery & ReqPage
  // 角色管理 分页列表
  export interface RolePageList {
    createBy: string
    createTime: string
    id: number
    name: string
    roleKey: string
    sort: number
    status: number
    updateBy: string
    updateTime: string
  }
  // 角色管理 新增|修改
  export interface RoleAdd {
    id?: number
    name: string
    roleKey: string
    sort?: number
    status: number
    menuIds: number[]
  }
  // 角色管理 所有
  export interface RoleCate {
    id: number
    name: string
    roleKey: string
    children?: RoleCate[]
  }
  // ------------------日志管理------------------ //
  // 操作日志 分页列表请求参数
  export interface ActionLogPageQuery {
    op?: string
    ip?: string
    result?: string
    module?: string
    uid?: string
    startTime?: string
    endTime?: string
  }
  export type ActionLogPageListQuery = ActionLogPageQuery & ReqPage
  // 操作日志 分页列表
  export interface ActionLogPageList {
    costTime: number
    dateline: string
    errorMsg?: string
    id: number
    ip: string
    module: string
    op: string
    path?: string
    request?: any
    response?: any
    result: number
    uid: string
  }
  // 操作日志 查看详情
  export interface ActionLogDetail {
    id: number
    uid: string
    module: string
    op: string
    ip: string
    request: string
    response: string
    result: number
    dateline: string
    errorMsg?: any
    costTime: number
    path: string
  }
  // 登陆日志 分页列表请求参数
  export interface LoginLogPageQuery {
    ip?: string
    result?: number
    uid?: string
    startTime?: string
    endTime?: string
  }
  export type LoginLogPageListQuery = LoginLogPageQuery & ReqPage
  // 登陆日志 分页列表
  export interface LoginLogPageList {
    account: string
    browser: string
    id: number
    ip: string
    loginTime: string
    msg: string
    os: string
    result: number
  }
  // 登陆日志 详情
  export interface LoginLogDetail {
    account: string
    browser: string
    id: number
    ip: string
    loginTime: string
    msg: string
    os: string
    result: number
  }
  // 参数管理 分页查询
  export interface ConfigPageQuery {
    pageIndex: number
    pageSize: number
    paramName?: string
  }
  export interface ConfigPage {
    configKey: string
    configValue: string
    createBy: string
    createTime: string
    id: number
    name: string
    remark: string
    type: string
    updateBy: string
    updateTime: string
  }
  // 新增/编辑配置
  export interface SaveConfig {
    id?: number
    name: string
    configKey: string
    configValue: string
    remark: string
  }
  // 数据字段 分页查询
  export interface DataDictionaryPageQuery {
    dictName?: string
    dictType?: string
    status?: number
    pageIndex: number
    pageSize: number
  }
  export interface DataDictionaryPage {
    createBy: string
    createTime: string
    dictId: number
    dictName: string
    dictType: string
    remark: string
    status: string | number
  }
  // 新增/编辑数据字典
  export interface SaveDataDictionary {
    dictId?: number
    dictName: string
    dictType: string
    status: number
    remark: string
  }
  // 数据字典详情分页
  export interface DataDictionaryDetailPageQuery {
    dictLabel?: string
    dictType?: string
    status?: number
    pageIndex: number
    pageSize: number
  }
  export interface DataDictionaryDetailPage {
    cssClass: string
    dictCode: number
    dictLabel: string
    dictSort: number
    dictType: string
    dictValue: string
    isDefault: boolean
    listClass: string
    remark: string
    status: number
  }
  //  新增/编辑数据字典详情
  export interface SaveDataDictionaryDetail {
    dictType: string
    dictLabel: string
    dictCode?: number
    dictValue: string
    dictSort: number
    cssClass?: string
    listClass?: string
    remark?: string
    status: number
  }
  // 根据类型查询数据字典
  export interface DataDictionaryByType {
    dictCode: number
    dictSort: number
    dictLabel: string
    dictValue: string
    dictType: string
    cssClass: string
    listClass: string
    isDefault: false
    status: number
    remark: string
    delFlag: false
    createBy: string
    createTime: string
    updateBy: string
    updateTime: string
  }
  // 组织机构 树
  export interface OrganTree {
    id: number
    level: number
    organName: string
    personCharge: string
    pid?: number
    childrenTree?: OrganTree[]
  }
  // 组织机构 新增/编辑
  export interface SaveOrgan {
    id?: number
    pid: number
    level: number
    organName: string
    personCharge: string
  }
  // 根据层级查询厂区，产线数据
  export interface OrganByLevel {
    createBy: string
    createTime: string
    delFlag: false
    id: number
    level: number
    organName: string
    personCharge: string
    pid: number
    remark: string
    sort: number
    status: boolean
    updateBy: string
    updateTime: string
  }
}
